package com.wgh.product.api.client;

import com.wgh.product.api.fallback.BrandClientFallback;
import com.wgh.product.dto.BrandDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 品牌管理客户端接口
 */
@FeignClient(name = "shop-product", fallback = BrandClientFallback.class)
public interface BrandClient {

    /**
     * 根据ID查询品牌信息
     */
    @GetMapping("/api/brand/{id}")
    BrandDTO findById(@PathVariable("id") Long id);

    /**
     * 批量查询品牌信息
     */
    @GetMapping("/api/brand/list")
    List<BrandDTO> findListByIds(@RequestParam("ids") List<Long> ids);

    /**
     * 查询所有启用的品牌
     */
    @GetMapping("/api/brand/enabled")
    List<BrandDTO> findEnabledList();

    /**
     * 分页查询品牌列表
     */
    @GetMapping("/api/brand/page")
    List<BrandDTO> findPage(@RequestParam("page") Integer page, @RequestParam("size") Integer size);

    /**
     * 搜索品牌
     */
    @GetMapping("/api/brand/search")
    List<BrandDTO> search(@RequestParam("keyword") String keyword, 
                          @RequestParam("page") Integer page, 
                          @RequestParam("size") Integer size);
}